using System.Collections.Generic;

namespace SharePointUtilitiesForDevelopers.Action
{
    /// <summary>
    /// Defines the interface for an action manager.
    /// </summary>
    public interface IActionManager
    {
        /// <summary>
        /// Loads the actions.
        /// </summary>
        void LoadActions();

        /// <summary>
        /// Clears the actions.
        /// </summary>
        void ClearActions();

        /// <summary>
        /// Adds the action.
        /// </summary>
        /// <param name="action">The action.</param>
        void AddAction(IAction action);

        /// <summary>
        /// Gets the actions for the specified target mask.
        /// </summary>
        /// <param name="target">The target mask.</param>
        /// <returns>A list of actions for a given target mask.</returns>
        IEnumerable<IAction> GetActions(ActionTarget target);
    }
}